#include "stm32f10x.h"
#include "sys.h"
/* TEST */
#include "mlx90614.h"
#include "bsp_usart1.h"
#include "bsp_led.h"
#include "indicator.h"
#include "delay1.h"
#include "bsp_beep.h"
#include "delay.h"
/* TEST END */
/* ----------------------- Defines ----------------------------*/

/* ----------------------- Type definitions -------------------*/
/* TEST */
float fTbody ;
sMlx90614Typ sMlx ;
/* TEST END */
/* ----------------------- Function ---------------------------*/
float Tobj;
 
int main()
{
	char ch;
	
	/* 系统软件延时初始化 */
	delay_init() ;
	USART1_Config();
	
  LED_GPIO_Config();
	indicator_config();
	BEEP_GPIO_Config();
	
	vMLX90614_Init(&sMlx,MLX90614_SMBUS_ADDR);
	
	while(1) 
	{
		ch = getchar();
    //ch = USART_ReceiveData(USART1);
		
			/* 获取环境温度 */
		ucMLX90614_GetTA(&sMlx) ;
		/* 获取人体额头温度 */
		ucMLX90614_GetTO1(&sMlx) ;
		Tobj = ucMLX90614_TempCompO(&sMlx) ;
		//delay_ms(1000) ; 
		/* 计算补偿后的人体温度 */
		fTbody = ucMLX90614_TempComp(&sMlx) ;
		
		if( ch == '1' )//指纹验证
		{
			LED_display(4);
			printf("正在验证! \n");	
		}
		else if(ch == '2')//指纹录入
		{
			LED_display(5);
			printf("正在录入! \n");
			/*
			//录入环节
			*/
			printf("录入成功! \n");
		}
		else if(ch == '3')//温度测试
		{
			//printf("温度:%.2f \n",fTbody);
			open_indicator();
			printf("%.1f \n",fTbody);
//			if(fTbody >= 37.50)
//			{
//				LED_display(1);
//				BEEP_ON();
//			}
//			else if(fTbody <= 37.3 && fTbody >= 35.0)
//			{
//				LED_display(2);
//				
//			}
//			else
//			{
//				LED_display(1);
//				BEEP_ON();
//			}
			delay1_s(2);
			//BEEP_OFF();
			close_indi();
		}
		else if(ch == '4')
		{
			printf("%.2f \n",Tobj);
		}
		else
		{
			printf("error \n");
		}

	}
}

/*
 * 函数名：System_Init
 * 描述  ：系统初始化函数
 * 输入  ：无
 * 输出  ：无
 * 返回  ：无
 * 调用  ：无 
 * 举例  ：在main函数中调用此函数。
 */






